#include <REGX52.H>
#include "Delay.h"

unsigned char Number;

/**
  * @brief  获取按键键码
  * @param  无
  * @retval 按下按键的键码，范围：0,1~4,0表示无按键按下
  */
unsigned char Key()
{
	unsigned char Temp=0;
	Temp=Number;
	Number=0;
	return Temp;	
}

/**
  * @brief  获取当前按键的状态，无消抖及松手检测
  * @param  无
  * @retval 按下按键的键码，范围：0,1~4,0表示无按键按下
  */
unsigned char Key_GetState()
{
	unsigned char KeyNumber=0;
	if(P3_1==0){KeyNumber=1;}
	if(P3_0==0){KeyNumber=2;}
	if(P3_2==0){KeyNumber=3;}	
	if(P3_3==0){KeyNumber=4;}	
	return KeyNumber;	
}

/**
  * @brief  按键驱动函数，在中断中调用
  * @param  无
  * @retval 无
  */
void Key_Loop()
{
	static unsigned char Last_State,Current_State;//设为静态变量，防止被存储的值被清0
	Last_State=Current_State;
	Current_State=Key_GetState();
	if(Last_State==1 && Current_State==0){Number=1;}
	if(Last_State==2 && Current_State==0){Number=2;}
	if(Last_State==3 && Current_State==0){Number=3;}
	if(Last_State==4 && Current_State==0){Number=4;}
}